import dayjs from 'dayjs'
Page({
  data: {
    currentDate: new Date().getTime(),
    houseLayerVisible: false,
    repairLayerVisible: false,
    dateLayerVisible: false,
    houseList: [], // 报修房屋(里面有id和name 发请求的时候只需要id 渲染页面需要name)
    repairItem: [], // 维修项目(里面有id和name 发请求的时候只需要id 渲染页面需要name)
    mobile: '', // 手机号
    appointment: '', // 预约日期
    description: '', // 问题描述
    attachment: [] // 所有附件图片的数组
  },
  onLoad() {
    this.repairsHouseLayer()
    this.houseListLayer()
  },
  // 发送报修房屋的请求
  async houseListLayer() {
    const res = await wx.$http.get('/room')
    if (res.code !== 10000) return wx.$utilss.toast('请求失败')
    // console.log(res.data)
    const tmp = res.data.map(item => ({
      id: item.id,
      name: item.point + item.building + '号楼' + item.room
    }))
    this.setData({
      houseList: tmp
    })
  },
  // 发送查询维修项目的请求
  async repairsHouseLayer() {
    const res = await wx.$http.get('/repairItem')
    if (res.code !== 10000) return wx.$utilss.toast('请求失败')
    // console.log(res.data)
    this.setData({
      repairItem: res.data
    })
  },
  openHouseLayer() {
    this.setData({
      houseLayerVisible: true
    })
  },
  closeHouseLayer() {
    this.setData({
      houseLayerVisible: false
    })
  },
  openRepairLayer() {
    this.setData({
      repairLayerVisible: true
    })
  },
  closeRepairLayer() {
    this.setData({
      repairLayerVisible: false,
    })
  },
  //点击报修房屋下拉框选择
  selectHouse(e) {
    // console.log(e);
    this.setData({
      houseList: e.detail
    })
  },
  // 点击维修项目下拉框选择
  repairArticle(e) {
    // console.log(e)
    this.setData({
      repairItem: e.detail
    })
  },
  // 点击预约日期的时间选择
  selectDate(e) {
    console.log(e.detail) // 1680969600000 获取的是时间戳 我们需要进行修改为后台需要的样式 
    // 这里需要我们下载一个包 npm install dayjs 然后在这个页面引用一下 然后转化成我们需要数据
    this.setData({
      appointment: dayjs(e.detail).format('YYYY-MM-DD') // 2023-04-09
    })
    this.closeDateLayer() // 关闭预约日期弹框
  },
  // 问题附件 图片上传
  afterRead(e) {
    console.log(e);
    wx.uploadFile({
      url: wx.$http.baseURL + '/upload',
      filePath: e.detail.file.url,
      name: 'file', // 文件对应的 key
      header: { //HTTP 请求 Header
        //必须自己再传一下header，请求拦截器只是给wx.$http增加了拦截器
        Authorization: getApp().token,
      },
      // 需要改为箭头函数 不然不能使用this
      success: (res) => { // 接口调用成功的回调函数
        console.log(res.data)
        // 把字符串改成对象
        const updata = JSON.parse(res.data)
        // 把js里面的attachment 值修改了
        this.data.attachment.push(updata.data)
        this.setData({
          attachment: this.data.attachment
        })
      }
    })
  },
  openDateLayer() {
    this.setData({
      dateLayerVisible: true
    })
  },
  // 关闭预约日期弹框
  closeDateLayer() {
    this.setData({
      dateLayerVisible: false
    })
  },
  // 修改提交报修信息
  async goList() {
    const res = await wx.$http.post('/repair', {
      houseId: this.data.houseList?.id,
      repairItemId: this.data.repairItem?.id,
      mobile: this.data.mobile,
      appointment: this.data.appointment,
      description: this.data.description,
      attachment: this.data.attachment
    })
    console.log(res);
    if (res.code !== 10000) return wx.$utilss.toast('请求失败,请检查参数')
    wx.reLaunch({
      url: '/repair_pkg/pages/list/index',
    })
  },
})